import json
from typing import Dict, List

from langchain_core.documents import Document


def get_prompt(chat_history: List[Dict[str, str]], docs: List[Document], query: str):
    '''
    将沟通历史与检索结果整合成prompt
    '''
    result = []
    history = '\n'.join([item['role'] + ': ' + item['content'] for item in chat_history])
    doc = '\n'.join([d.page_content for d in docs])
    result.append(
        {
            'role': 'system',
            'content': '你是一个用户友好的assistant， 会根据参考信息和沟通历史回答用户的问题。'
                       '如果参考信息与用户问题无关，可以忽略。'
                       '如果参考信息与用户问题有关，只依据参考信息作答。\n'
                       '参考信息：\n'
                       f'{doc}'
                       '沟通历史： \n'
                       f'{history}\n'

        }
    )
    result.append(
        {
            "role": "user",
            "content": query
        }
    )
    print(json.dumps(result, indent=2, ensure_ascii=False))
    return result
